package com.parking.mgr.common.util;

import org.apache.commons.lang3.StringUtils;

import java.util.Random;

/**
 * @ClassName PwdCheckUtil
 * @Description 密码校验
 * @Auther: zhijianpu
 * @Date: 2023/5/30
 */
public class PwdCheckUtil {

    /**
     * 密码长度在8到16位之间，包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符
     */
    private static final String PWD_REGEX = "^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*]).{8,20}$";;

    /**
     * 密码长度在8到20位之间，必须包含至少一个大写字母、一个小写字母和一个数字
     */
    private static final String PWD_REGEX_USING = "^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{8,20}$";


    /**
     * 密码复杂度校验，判断有效性
     * @param password 密码信息
     * @return 校验密码是否合规有效
     */
    public static boolean isValidPassword(String password) {
        if (StringUtils.isBlank(password)) {
            return false;
        }
        return password.matches(PWD_REGEX_USING);
    }

    public static void main(String[] args) {
        System.out.println(isValidPassword("psdd8hfr3"));
    }

    /**
     * 获取6位验证码
     */
    public static String getSixBitCode() {
        //随机数
        StringBuilder sb = new StringBuilder();
        Random rand = new Random();
        for (int i = 0; i < 6; i++) {
            sb.append(rand.nextInt(10));
        }
        return sb.toString();
    }

}
